From: Alex Williamson Date: Sun, 30 Dec 2007 19:56:16 +0000 (-0700) Subject: [IA64] Fix PV break fault handler. X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~14445^2~75 X-Git-Url: https://dgit.raspbian.org/%22http:/www.example.com/cgi/%22https:/%22bookmarks://%22/%22http:/www.example.com/cgi/%22https:/%22bookmarks:/%22?a=commitdiff_plain;h=3be10ebb0105449915b29d3fa393cc5b07b1b7ca;p=xen.git [IA64] Fix PV break fault handler. PV domain break fault handler calls C routine reflect_event() with psr.ic = 0. It might cause unrecoverable tlb miss. set psr.ic=1 before calling it. Signed-off-by: Isaku Yamahata --- diff --git a/xen/arch/ia64/xen/ivt.S b/xen/arch/ia64/xen/ivt.S index f0f8c5f62c..b9eb05e50c 100644 --- a/xen/arch/ia64/xen/ivt.S +++ b/xen/arch/ia64/xen/ivt.S @@ -714,15 +714,20 @@ fast_hypercall: adds r2=PT(CR_IFS)+16,r12 ;; st8 [r2]=r20 - ;; + ssm psr.ic | PSR_DEFAULT_BITS + ;; + srlz.i + ;; br.call.sptk.many b0=reflect_event ;; + rsm psr.i|psr.ic adds r2=PT(R14)+16,r12 adds r3=PT(R8)+16,r12 ;; //r16 contains ar.bsp before cover ld8 r16=[r2] ld8 r8=[r3] + srlz.i ;; br.sptk.many ia64_ret_from_syscall ;;